package CallableRing;

import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

public class ScheduledTask implements Callable<Void> {
//每次循环都会让线程休眠3秒，然后输出当前的时间戳，并递增计数器。当计数器达到10时，循环结束。
    @Override
    public Void call() throws Exception {
        int count = 0;
        while (count < 10) {
            // 每3秒输出一次当前的时间戳
            Thread.sleep(3000); // 休眠3秒
            long timestamp = System.currentTimeMillis();
            System.out.println("当前时间戳: " + timestamp);
            count++;
        }
        return null; // 返回null，因为Callable可以有返回值
    }

    public static void main(String[] args) {
        // 创建一个FutureTask，将Callable对象传入
        FutureTask<Void> futureTask = new FutureTask<>(new ScheduledTask());
        // 创建线程，将FutureTask传入
        Thread thread = new Thread(futureTask);
        // 启动线程
        thread.start();
        // 获取线程执行的结果，这里我们不关心返回值，所以直接调用get()
        try {
            futureTask.get();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}